#ifndef _AIRC_CMDS_H
#define _AIRC_CMDS_H

#include "airc.h"
#include <cmds.h>

struct _airc_usercmd {
    char *name;
    int (*on_command)(IRC_conn *irc, const char *cmd, const char *target, const char **args);
    char *help;
    PurpleCmdId id;
};

int airc_usercmd_action(IRC_conn *irc, const char *cmd, const char *target, const char **args);
#define airc_usercmd_action airc_usercmd_me
int airc_usercmd_away(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_ban(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_chanserv(IRC_conn *irc, const char *cmd, const char *target, const char **args);
#define airc_usercmd_cs airc_usercmd_chanserv
int airc_usercmd_ctcp(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_cycle(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_deop(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_devoice(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_helpop(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_hostserv(IRC_conn *irc, const char *cmd, const char *target, const char **args);
#define airc_usercmd_hs airc_usercmd_hostserv
int airc_usercmd_ignore(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_invite(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_ison(IRC_conn *irc, const char *cmd, const char *target, const char **args);
#define airc_usercmd_j airc_usercmd_join
int airc_usercmd_join(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_kick(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_kill(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_knock(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_list(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_links(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_map(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_me(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_memoserv(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_mode(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_motd(IRC_conn *irc, const char *cmd, const char *target, const char **args);
#define airc_usercmd_ms airc_usercmd_memoserv
int airc_usercmd_msg(IRC_conn *irc, const char *cmd, const char *target, const char **args);
#define airc_usercmd_msg airc_usercmd_privmsg
int airc_usercmd_names(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_nick(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_nickserv(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_notice(IRC_conn *irc, const char *cmd, const char *target, const char **args);
#define airc_usercmd_ns airc_usercmd_nickserv
int airc_usercmd_op(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_oper(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_operserv(IRC_conn *irc, const char *cmd, const char *target, const char **args);
#define airc_usercmd_os airc_usercmd_operserv
int airc_usercmd_part(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_ping(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_privmsg(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_query(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_quit(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_quote(IRC_conn *irc, const char *cmd, const char *target, const char **args);
#define airc_usercmd_raw airc_usercmd_quote
int airc_usercmd_remove(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_time(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_topic(IRC_conn *irc, const char *cmd, const char *target, const char **args);
#define airc_usercmd_umode airc_usercmd_mode
int airc_usercmd_unignore(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_version(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_voice(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_wallops(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_watch(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_who(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_whois(IRC_conn *irc, const char *cmd, const char *target, const char **args);
int airc_usercmd_whowas(IRC_conn *irc, const char *cmd, const char *target, const char **args);


#endif /* _AIRC_CMDS_H */